(function ($) {
    $.fn.serializeFormJSON = function () {
        var o = {};
        var a = this.serializeArray();
        $.each(a, function () {
            if (o[this.name]) {
                if (!o[this.name].push) {
                    o[this.name] = [o[this.name]];
                }
                o[this.name].push(this.value || '');
            } else {
                o[this.name] = this.value || '';
            }
        });
        return o;
    };

    var page = {
        init: function () {
            var that = this;

            that.reloadTable();

            $('.table-search').click(function () {
                that.tableSearch();
            });

            $('.reset-search').click(function () {
                that.resetSearch();
            });

            $('#btn_delete').click(function () {
                that.deleteRow();
            });
        },
        reloadTable: function () {
            $('#tb_base').bootstrapTable({
                classes: 'table table-bordered table-hover text-nowrap',
                url: '/jobs',
                method: 'get',
                uniqueId: 'jobId',
                idField: 'jobId',             // 每行的唯一标识字段
                toolbar: '#toolbar',       // 工具按钮容器
                //clickToSelect: true,     // 是否启用点击选中行
                showColumns: true,         // 是否显示所有的列
                showRefresh: true,         // 是否显示刷新按钮
                showToggle: true,        // 是否显示详细视图和列表视图的切换按钮(clickToSelect同时设置为true时点击会报错)
                pagination: true,                    // 是否显示分页
                sortOrder: "asc",                    // 排序方式
                queryParams: function (params) {
                    var temp = {
                        limit: params.limit,
                        offset: params.offset,
                        pageSize: params.limit,   //页面大小
                        pageNum: (params.offset / params.limit) + 1,  //页码
                        isAsc: params.order,          // 排序方式'asc' 'desc'
                        orderByColumn: params.sort  // 排序的列名
                        , creatorName: $("#creatorName").val()
                        , requestUri: $("#requestUri").val()
                    };
                    return temp;
                },                                   // 传递参数
                sidePagination: "server",            // 分页方式：client客户端分页，server服务端分页
                pageNumber: 1,                       // 初始化加载第一页，默认第一页
                pageSize: 10,                        // 每页的记录行数
                pageList: [5, 10, 25, 50, 100],         // 可供选择的每页的行数
                //search: true,                      // 是否显示表格搜索，此搜索是客户端搜索
                //showExport: true,        // 是否显示导出按钮, 导出功能需要导出插件支持(tableexport.min.js)
                //exportDataType: "basic", // 导出数据类型, 'basic':当前页, 'all':所有数据, 'selected':选中的数据

                columns: [{
                    checkbox: true
                }, {
                    title: '序号',
                    align: 'center',
                    formatter: function (value, row, index) {
                        return index + 1;
                    }
                }, {
                    field: 'jobId',
                    align: 'center',
                    visible: false, // false不显示
                    title: '日志编号'
                }, {
                    title: '日志详情',
                    align: 'center',
                    formatter: function (value, row, index) {
                        return '<a data-toggle="modal" data-target="#gridSystemModal"> 详情 </a>';
                    }
                }, {
                    field: 'beanName',
                    title: '用户操作'
                }, {
                    field: 'methodName',
                    title: '方法名称'
                }, {
                    field: 'params',
                    title: '参数'
                }, {
                    field: 'cronExpression',
                    title: 'cron表达式'
                }, {
                    field: 'remark',
                    title: '备注'
                }, {
                    field: 'createTime',
                    title: '创建时间'
                }, {
                    field: 'status',
                    align: 'center',
                    title: '任务状态',
                    formatter: function (value, row, index) {
                        if (value == 1) {
                            return '<b class="text-success">正常</b>';
                        } else {
                            return '<b class="text-warning">失败</b>';
                        }
                    }
                }],
                onLoadSuccess: function (data) {
                    $("[data-toggle='tooltip']").tooltip();
                }
            });
        },
        tableSearch: function () {
            $("#tb_base").bootstrapTable('refresh');
        },
        resetSearch: function () {
            $(".form-control input[type='text']").val("");
        },
        deleteRow: function () {
            var selRows = $("#tb_base").bootstrapTable('getSelections');

            if (selRows.length == 0) {
                alert("请至少选择一行");
                return;
            }
            console.log(selRows);

            var postData = "";
            $.each(selRows, function (i) {
                postData += this.id;
                if (i < selRows.length - 1) {
                    postData += ",";
                }
            });

            $.ajax({
                type: "delete",
                url: "/logs/batch",
                cache: false,
                data: {'ids': postData},
                dataType: "json",
                contentType: 'application/x-www-form-urlencoded',
                success: function (data) {
                    if (data.code == "0") {
                        // 正确的其他处理...
                        layer.msg(data.msg, {icon: 6});
                        $("#tb_base").bootstrapTable('refresh');

                    } else {
                        // 错误的其他处理...
                        layer.msg(data.msg, {icon: 5});
                        $("#tb_base").bootstrapTable('refresh');
                    }
                },
                error: function (E) {
                    console.log(E);
                    layer.msg('提交系统失败，请稍后再试', {icon: 2});
                }
            });
        }
    };

    page.init();

})(jQuery);